// test_aliyun_asr.js
// 测试阿里云ASR服务连接

const path = require('path');
require('dotenv').config({ path: path.resolve(__dirname, '.env') });
const Core = require('@alicloud/pop-core');

async function testAliyunASR() {
  console.log('测试阿里云ASR服务...');
  
  // 检查配置
  const ALIYUN_ACCESS_KEY_ID = process.env.ALIYUN_ACCESS_KEY_ID || '';
  const ALIYUN_ACCESS_KEY_SECRET = process.env.ALIYUN_ACCESS_KEY_SECRET || '';
  const ALIYUN_ASR_APPKEY = process.env.ALIYUN_ASR_APPKEY || '';
  
  console.log('配置检查:');
  console.log('- ALIYUN_ACCESS_KEY_ID:', ALIYUN_ACCESS_KEY_ID ? '已设置' : '未设置');
  console.log('- ALIYUN_ACCESS_KEY_SECRET:', ALIYUN_ACCESS_KEY_SECRET ? '已设置' : '未设置');
  console.log('- ALIYUN_ASR_APPKEY:', ALIYUN_ASR_APPKEY ? '已设置' : '未设置');
  
  if (!ALIYUN_ACCESS_KEY_ID || !ALIYUN_ACCESS_KEY_SECRET) {
    console.log('错误: 阿里云访问密钥未配置');
    return;
  }

  try {
    // 创建阿里云客户端（用于获取令牌）
    const metaClient = new Core({
      accessKeyId: ALIYUN_ACCESS_KEY_ID,
      accessKeySecret: ALIYUN_ACCESS_KEY_SECRET,
      endpoint: 'http://nls-meta.cn-shanghai.aliyuncs.com',
      apiVersion: '2019-02-28'
    });

    console.log('阿里云客户端创建成功');
    
    // 测试获取令牌
    console.log('正在获取访问令牌...');
    const tokenResponse = await metaClient.request('NlsToken', {
      Action: 'CreateToken'
    }, {
      method: 'POST'
    });

    console.log('令牌获取成功:', tokenResponse);
    console.log('TokenId:', tokenResponse.TokenId);
    
    // 验证AppKey
    if (!ALIYUN_ASR_APPKEY) {
      console.log('警告: ALIYUN_ASR_APPKEY未设置');
    } else {
      console.log('AppKey已设置');
    }
    
    console.log('\n✅ 阿里云ASR配置完整');
    console.log('1. 测试阿里云ASR识别:');
    console.log('   - 确保ASR_ENGINE=aliyun在.env文件中已设置');
    console.log('   - 重启后端服务以应用更改');
    console.log('\n2. 配置信息:');
    console.log('   ASR_ENGINE:', process.env.ASR_ENGINE || '未设置');
    console.log('   使用阿里云ASR需要在.env文件中设置ASR_ENGINE=aliyun');
    
  } catch (error) {
    console.error('测试失败:', error);
    if (error.code) {
      console.error('错误代码:', error.code);
    }
    if (error.message) {
      console.error('错误信息:', error.message);
    }
    if (error.data) {
      console.error('错误数据:', error.data);
    }
  }
}

// 运行测试
testAliyunASR();